From: Matthias Clasen Date: Wed, 8 Mar 2023 18:36:42 +0000 (-0500) Subject: widget: Skip popovers in allocation X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~90^2^2~35^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=2f273ba76a46dfe539f25f5fac5f15dc43a4f1c6;p=gtk4.git widget: Skip popovers in allocation Native widgets get allocated via their surface, so can skip them here. This avoids criticals when re-mapping a popover for the second time, as can be seen e.g. in the 'Selections' demo in gtk4-demo. --- diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 45fd23fb9c..702f9a72c1 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -3889,7 +3889,8 @@ gtk_widget_ensure_allocate_on_children (GtkWidget *widget) child != NULL; child = _gtk_widget_get_next_sibling (child)) { - gtk_widget_ensure_allocate (child); + if (gtk_widget_should_layout (child)) + gtk_widget_ensure_allocate (child); } }